<?php

class ApointmentModel extends CI_Model{
    
    function __construct(){
        parent::__construct();
        $this->table_Apointment = 'cita';
    }
    
    public function getNameByStateId($apointmentTypeId){
        $this->db->select("descripcion_estado");
        $this->db->from("estado_cita");
        $this->db->where("ID_ESTADO = '$apointmentTypeId'");
        $query = $this->db->get();
        $apointments = $query->result();
        return $apointments[0]->descripcion_estado;
    }
    
    public function getApointmentsByDate($startDate, $endDate){
        
        $this->db->select("ID_CITA, ID_ESTADO");
        $this->db->from("cita");
        $this->db->where("cita.fecha < '$endDate'");
        $this->db->where("cita.fecha > '$startDate' ");
        $query = $this->db->get();
        $apointments = $query->result();
        $valuesArray = $this->calculateApointmentQuantity($apointments);
        return $valuesArray;
    }
    
    public function getApointmentsByDateAndSpecialty($specialtyId, $startDate, $endDate){
        $this->db->select("ID_CITA, ID_ESTADO");
        $this->db->from("cita, horario, especialidad");
        $this->db->where("cita.ID_HORARIO = horario.ID_HORARIO");
        $this->db->where("especialidad.ID_ESPECIALIDAD = horario.ID_ESPECIALIDAD");
        $this->db->where("especialidad.ID_ESPECIALIDAD = '$specialtyId'");
        $this->db->where("cita.fecha < '$endDate'");
        $this->db->where("cita.fecha > '$startDate' ");
        $query = $this->db->get();
        $apointments = $query->result();
        $valuesArray = $this->calculateApointmentQuantity($apointments);
        return $valuesArray;
    }
    
    public function getApointmentsBySpecialty($specialtyId){
        /*
         SELECT cita.ID_CITA, cita.ID_ESTADO, especialidad.ID_ESPECIALIDAD 
        FROM cita, horario, especialidad
        WHERE cita.ID_HORARIO = horario.ID_HORARIO
        AND especialidad.ID_ESPECIALIDAD = horario.ID_ESPECIALIDAD
        AND especialidad.ID_ESPECIALIDAD = 26
         */
        
        $this->db->select("ID_CITA, ID_ESTADO");
        $this->db->from("cita, horario, especialidad");
        $this->db->where("cita.ID_HORARIO = horario.ID_HORARIO");
        $this->db->where("especialidad.ID_ESPECIALIDAD = horario.ID_ESPECIALIDAD");
        $this->db->where("especialidad.ID_ESPECIALIDAD = '$specialtyId'");
        $query = $this->db->get();
        $apointments = $query->result();
        $valuesArray = $this->calculateApointmentQuantity($apointments);
        return $valuesArray;
    }
    
    public function getAllApointments(){
        $this->db->select("ID_CITA, ID_ESTADO");
        $this->db->from("cita");
        $query = $this->db->get();
        $apointments = $query->result();
        $valuesArray = $this->calculateApointmentQuantity($apointments);
        return $valuesArray;
    }
    
    public function getApointmentStates(){
        $this->db->select("ID_ESTADO, descripcion_estado");
        $this->db->from("estado_cita");
        $query = $this->db->get();
        $states = $query->result();
        return $states;
    }
    
    public function getApointmentsQuantityByIdAndSpecialty($apointmentId, $specialtyId){
        
        $this->db->select("especialidad.nombre_especialidad, estado_cita.descripcion_estado");
        $this->db->from("especialidad, estado_cita, cita, horario");
        $this->db->where("cita.ID_ESTADO = '$apointmentId'");
        $this->db->where("especialidad.ID_ESPECIALIDAD = '$specialtyId'");
        $this->db->where("especialidad.ID_ESPECIALIDAD = horario.ID_ESPECIALIDAD");
        $this->db->where("cita.ID_HORARIO = horario.ID_HORARIO");
        $this->db->where("cita.ID_ESTADO = estado_cita.ID_ESTADO");
        
        $query = $this->db->get();
        $apointments = $query->result();
        return count($apointments);
    }
    
    public function calculateApointmentQuantity($apointments){
        //echo var_dump($apointments);
        $array = array();
        $array[0] = 0;
        $array[1] = 0;
        $array[2] = 0;
        $array[3] = 0;
        $array[4] = 0;
        $array[5] = 0;
        $array[6] = 0;
        $array[7] = 0;
        $array[8] = 0;
        foreach($apointments as $apo){
            $index = $apo->ID_ESTADO;
            
            $array[$index] = $array[$index]+1;
        }
        
        return $array;
        
    }
}

?>
